
#ifndef _CHAR_DEV_H_
#define _CHAR_DEV_H_

/*******************************************************************************
* 0:		使用(un)register_chrdev将该主设备号下全部设备注册和清除；
* 其他值：	使用(un)register_chrdev_region注册指定数量的设备；
*******************************************************************************/
#define REGISTER_CHRDEV_NEW_METHOD 1

#define XXX_DEV_NAME "xxx"
#define XXX_MAJOR 230
#define XXX_MINOR_BASE 0
#define XXX_MINOR_DEVICE_NUM 1

#define CHAR_DEV_TEST_FIFO_LENGTH 100 /*模拟字符驱动为100字节的FIFO*/

static int xxx_open(struct inode *inode, struct file *filp);
static int xxx_release(struct inode *inode, struct file *filp);
static ssize_t xxx_read(struct file *filp, char __user * buf, size_t size, loff_t * ppos);
static ssize_t xxx_write(struct file *filp, const char __user * buf, size_t size, loff_t * ppos);
static loff_t xxx_llseek(struct file *filp, loff_t offset, int orig);

#endif

/********************说明信息********************/
#if 0
cat /proc/devices  	/*可以查看当前字符设备列表，名字为定义的设备名称和设备号*/
ls /dev/			/*查看当前设备文件*/
lsmod				/*查看当前加载的模块，名字为模块名*/
#endif